home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / easyvi1a / vbavicap.bas next >
BASIC Source File  |  1997-11-24  |  24KB  |  423 lines

  1. Attribute VB_Name = "AVICAP"
  2. '*
  3. '* Author: E. J. Bantz Jr.
  4. '* Copyright: None, use and distribute freely ...
  5. '* E-Mail: ejbantz@usa.net
  6. '* Web: http://www.inlink.com/~ejbantz
  7.  
  8. '// ------------------------------------------------------------------
  9. '//  Windows API Constants / Types / Declarations
  10. '// ------------------------------------------------------------------
  11. Public Const WM_USER = &H400
  12. Type POINTAPI
  13.         x As Long
  14.         y As Long
  15. End Type
  16. Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
  17.  
  18. '// ------------------------------------------------------------------
  19. '//  Window Messages  WM_CAP... which can be sent to an AVICAP window
  20. '// ------------------------------------------------------------------
  21.  
  22. '// Defines start of the message range
  23. Public Const WM_CAP_START = WM_USER
  24.  
  25. Public Const WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1
  26.  
  27. Public Const WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2
  28. Public Const WM_CAP_SET_CALLBACK_STATUS = WM_CAP_START + 3
  29. Public Const WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4
  30. Public Const WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5
  31. Public Const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6
  32. Public Const WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7
  33. Public Const WM_CAP_GET_USER_DATA = WM_CAP_START + 8
  34. Public Const WM_CAP_SET_USER_DATA = WM_CAP_START + 9
  35.     
  36. Public Const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10
  37. Public Const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11
  38. Public Const WM_CAP_DRIVER_GET_NAME = WM_CAP_START + 12
  39. Public Const WM_CAP_DRIVER_GET_VERSION = WM_CAP_START + 13
  40. Public Const WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14
  41.  
  42. Public Const WM_CAP_FILE_SET_CAPTURE_FILE = WM_CAP_START + 20
  43. Public Const WM_CAP_FILE_GET_CAPTURE_FILE = WM_CAP_START + 21
  44. Public Const WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22
  45. Public Const WM_CAP_FILE_SAVEAS = WM_CAP_START + 23
  46. Public Const WM_CAP_FILE_SET_INFOCHUNK = WM_CAP_START + 24
  47. Public Const WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25
  48.  
  49. Public Const WM_CAP_EDIT_COPY = WM_CAP_START + 30
  50.  
  51. Public Const WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35
  52. Public Const WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36
  53.  
  54. Public Const WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41
  55. Public Const WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42
  56. Public Const WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43
  57. Public Const WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44
  58. Public Const WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45
  59. Public Const WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46
  60.  
  61. Public Const WM_CAP_SET_PREVIEW = WM_CAP_START + 50
  62. Public Const WM_CAP_SET_OVERLAY = WM_CAP_START + 51
  63. Public Const WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52
  64. Public Const WM_CAP_SET_SCALE = WM_CAP_START + 53
  65. Public Const WM_CAP_GET_STATUS = WM_CAP_START + 54
  66. Public Const WM_CAP_SET_SCROLL = WM_CAP_START + 55
  67.  
  68. Public Const WM_CAP_GRAB_FRAME = WM_CAP_START + 60
  69. Public Const WM_CAP_GRAB_FRAME_NOSTOP = WM_CAP_START + 61
  70.  
  71. Public Const WM_CAP_SEQUENCE = WM_CAP_START + 62
  72. Public Const WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63
  73. Public Const WM_CAP_SET_SEQUENCE_SETUP = WM_CAP_START + 64
  74. Public Const WM_CAP_GET_SEQUENCE_SETUP = WM_CAP_START + 65
  75. Public Const WM_CAP_SET_MCI_DEVICE = WM_CAP_START + 66
  76. Public Const WM_CAP_GET_MCI_DEVICE = WM_CAP_START + 67
  77. Public Const WM_CAP_STOP = WM_CAP_START + 68
  78. Public Const WM_CAP_ABORT = WM_CAP_START + 69
  79.  
  80. Public Const WM_CAP_SINGLE_FRAME_OPEN = WM_CAP_START + 70
  81. Public Const WM_CAP_SINGLE_FRAME_CLOSE = WM_CAP_START + 71
  82. Public Const WM_CAP_SINGLE_FRAME = WM_CAP_START + 72
  83.  
  84. Public Const WM_CAP_PAL_OPEN = WM_CAP_START + 80
  85. Public Const WM_CAP_PAL_SAVE = WM_CAP_START + 81
  86. Public Const WM_CAP_PAL_PASTE = WM_CAP_START + 82
  87. Public Const WM_CAP_PAL_AUTOCREATE = WM_CAP_START + 83
  88. Public Const WM_CAP_PAL_MANUALCREATE = WM_CAP_START + 84
  89.  
  90. '// Following added post VFW 1.1
  91. Public Const WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85
  92.  
  93. '// Defines end of the message range
  94. Public Const WM_CAP_END = WM_CAP_SET_CALLBACK_CAPCONTROL
  95.  
  96. '// ------------------------------------------------------------------
  97. '//  Structures
  98. '// ------------------------------------------------------------------
  99. Type CAPDRIVERCAPS
  100.     wDeviceIndex As Long '               // Driver index in system.ini
  101.     fHasOverlay As Long '                // Can device overlay?
  102.     fHasDlgVideoSource As Long '         // Has Video source dlg?
  103.     fHasDlgVideoFormat As Long '         // Has Format dlg?
  104.     fHasDlgVideoDisplay As Long '        // Has External out dlg?
  105.     fCaptureInitialized As Long '        // Driver ready to capture?
  106.     fDriverSuppliesPalettes As Long '    // Can driver make palettes?
  107.     hVideoIn As Long '                   // Driver In channel
  108.     hVideoOut As Long '                  // Driver Out channel
  109.     hVideoExtIn As Long '                // Driver Ext In channel
  110.     hVideoExtOut As Long '               // Driver Ext Out channel
  111. End Type
  112.  
  113. Type CAPSTATUS
  114.     uiImageWidth As Long                    '// Width of the image
  115.     uiImageHeight As Long                   '// Height of the image
  116.     fLiveWindow As Long                     '// Now Previewing video?
  117.     fOverlayWindow As Long                  '// Now Overlaying video?
  118.     fScale As Long                          '// Scale image to client?
  119.     ptScroll As POINTAPI                    '// Scroll position
  120.     fUsingDefaultPalette As Long            '// Using default driver palette?
  121.     fAudioHardware As Long                  '// Audio hardware present?
  122.     fCapFileExists As Long                  '// Does capture file exist?
  123.     dwCurrentVideoFrame As Long             '// # of video frames cap'td
  124.     dwCurrentVideoFramesDropped As Long     '// # of video frames dropped
  125.     dwCurrentWaveSamples As Long            '// # of wave samples cap'td
  126.     dwCurrentTimeElapsedMS As Long          '// Elapsed capture duration
  127.     hPalCurrent As Long                     '// Current palette in use
  128.     fCapturingNow As Long                   '// Capture in progress?
  129.     dwReturn As Long                        '// Error value after any operation
  130.     wNumVideoAllocated As Long              '// Actual number of video buffers
  131.     wNumAudioAllocated As Long              '// Actual number of audio buffers
  132. End Type
  133.  
  134. Type CAPTUREPARMS
  135.     dwRequestMicroSecPerFrame As Long       '// Requested capture rate
  136.     fMakeUserHitOKToCapture As Long         '// Show "Hit OK to cap" dlg?
  137.     wPercentDropForError As Long            '// Give error msg if > (10%)
  138.     fYield As Long                          '// Capture via background task?
  139.     dwIndexSize As Long                     '// Max index size in frames (32K)
  140.     wChunkGranularity As Long               '// Junk chunk granularity (2K)
  141.     fUsingDOSMemory As Long                 '// Use DOS buffers?
  142.     wNumVideoRequested As Long              '// # video buffers, If 0, autocalc
  143.     fCaptureAudio As Long                   '// Capture audio?
  144.     wNumAudioRequested As Long              '// # audio buffers, If 0, autocalc
  145.     vKeyAbort As Long                       '// Virtual key causing abort
  146.     fAbortLeftMouse As Long                 '// Abort on left mouse?
  147.     fAbortRightMouse As Long                '// Abort on right mouse?
  148.     fLimitEnabled As Long                   '// Use wTimeLimit?
  149.     wTimeLimit As Long                      '// Seconds to capture
  150.     fMCIControl As Long                     '// Use MCI video source?
  151.     fStepMCIDevice As Long                  '// Step MCI device?
  152.     dwMCIStartTime As Long                  '// Time to start in MS
  153.     dwMCIStopTime As Long                   '// Time to stop in MS
  154.     fStepCaptureAt2x As Long                '// Perform spatial averaging 2x
  155.     wStepCaptureAverageFrames As Long       '// Temporal average n Frames
  156.     dwAudioBufferSize As Long               '// Size of audio bufs (0 = default)
  157.     fDisableWriteCache As Long              '// Attempt to disable write cache
  158. End Type
  159.  
  160. Type CAPINFOCHUNK
  161.     fccInfoID As Long